package com.atguigu.gmall.payment.service;

import com.atguigu.gmall.model.order.OrderInfo;
import com.atguigu.gmall.model.payment.PaymentInfo;

import java.util.Map;

public interface PaymentService {
    /**
     * 保存交易记录
     * @param orderInfo
     * @param paymentType 支付类型
     * （1：微信 2：支付宝）
     */
    void savePayment(OrderInfo orderInfo,String paymentType);

    /**
     * 根据第三方交易号，支付类型名查询支付信息（对象）
     * @param outTradeNo
     * @param name
     * @return
     */
    PaymentInfo getPaymentInfo(String outTradeNo, String name);

    /**
     * 支付成功后异步回调，验证支付成功，更改支付状态等操作。
     * @param outTradeNo
     * @param name
     * @param paramMap
     */
    void paySuccess(String outTradeNo, String name, Map<String, String> paramMap);

    void updatePaymentInfo(String outTradeNo, String payTypeName, PaymentInfo paymentInfo);

    /**
     * 根据订单id 关闭交易信息 ，即状态改为Closed
     * @param orderId
     */
    void closePayment(Long orderId);
}
